Two-Way এবং One-Way Data Binding

Microsoft Technologies - এমভিভিএম (MVVM) View তৈরি এবং ডাটা বাইন্ডিং (Creating Views and Data Binding) |
219
219

Data Binding হল MVVM (Model-View-ViewModel) প্যাটার্নের একটি গুরুত্বপূর্ণ অংশ, যা View এবং ViewModel এর মধ্যে ডেটার স্বয়ংক্রিয় সিঙ্ক্রোনাইজেশন নিশ্চিত করে। Data Binding এর দুইটি প্রধান ধরন হল One-Way এবং Two-Way। এগুলি ভিন্ন ভিন্ন পরিস্থিতিতে ব্যবহৃত হয়, যেখানে প্রতিটির নিজস্ব সুবিধা এবং ব্যবহারিক উদ্দেশ্য রয়েছে।


One-Way Data Binding

One-Way Data Binding হল এমন একটি প্রক্রিয়া যেখানে ViewModel থেকে View-এ ডেটা এক দিকেই প্রবাহিত হয়, এবং View থেকে ViewModel-এ কোন ডেটা প্রবাহিত হয় না। এতে ViewModel এর কোনো পরিবর্তন স্বয়ংক্রিয়ভাবে View-এ প্রতিফলিত হয়, কিন্তু ব্যবহারকারী যদি UI তে কোন পরিবর্তন করে (যেমন একটি টেক্সটবক্সে কিছু টাইপ করা), তা ViewModel-এ প্রতিফলিত হয় না।

One-Way Data Binding এর উদাহরণ

ধরা যাক, আমাদের একটি Product Model আছে এবং আমরা ViewModel-এ এই তথ্যটি দেখতে চাই:

ViewModel:

public class ProductViewModel
{
    public string ProductName { get; set; }
    public decimal Price { get; set; }
}

View (XAML):

<TextBlock Text="{Binding ProductName}" />
<TextBlock Text="{Binding Price}" />

এখানে, ProductName এবং Price এর মান ViewModel থেকে View (TextBlock) এ সরাসরি বাইন্ড হচ্ছে। কিন্তু, যদি ব্যবহারকারী View-এ কোনো পরিবর্তন করে, তা ViewModel এ আপডেট হবে না। শুধুমাত্র ViewModel থেকে View-এ ডেটা প্রবাহিত হচ্ছে।


Two-Way Data Binding

Two-Way Data Binding হল এমন একটি প্রক্রিয়া যেখানে ডেটা উভয় দিকে প্রবাহিত হয়: ViewModel থেকে View এবং View থেকে ViewModel। এর মানে হলো, যখন ViewModel-এ ডেটা পরিবর্তিত হয়, তখন তা View-এ আপডেট হবে এবং যদি ব্যবহারকারী View-এ কোনো পরিবর্তন করে (যেমন ফর্মের ইনপুট), তখন সেই পরিবর্তন ViewModel-এ প্রতিফলিত হবে।

Two-Way Data Binding এর উদাহরণ

ধরা যাক, আমরা একই Product Model ব্যবহার করছি এবং একটি টেক্সটবক্সে ProductName আপডেট করতে চাই।

ViewModel:

public class ProductViewModel : INotifyPropertyChanged
{
    private string _productName;
    public string ProductName
    {
        get { return _productName; }
        set
        {
            if (_productName != value)
            {
                _productName = value;
                OnPropertyChanged(nameof(ProductName));
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

View (XAML):

<TextBox Text="{Binding ProductName, Mode=TwoWay}" />
<TextBlock Text="{Binding ProductName}" />

এখানে TextBox এর Text প্রপার্টি ProductName এর সাথে Two-Way বাইন্ডিং করা হয়েছে, যার মানে হচ্ছে:

  • যখন ProductName ViewModel-এ পরিবর্তিত হবে, তখন তা স্বয়ংক্রিয়ভাবে TextBox এবং TextBlock-এ আপডেট হবে।
  • যখন ব্যবহারকারী TextBox-এ কিছু টাইপ করবে, তখন সেই পরিবর্তন ProductName প্রপার্টি ViewModel-এ প্রতিফলিত হবে।

One-Way vs Two-Way Data Binding এর তুলনা

বৈশিষ্ট্যOne-Way Data BindingTwo-Way Data Binding
ডেটার প্রবাহViewModel থেকে View-এ শুধুমাত্র।ViewModel এবং View উভয়ের মধ্যে।
ডেটার আপডেটশুধুমাত্র ViewModel পরিবর্তন হলে View আপডেট হয়।ViewModel এবং View উভয়ই একে অপরকে আপডেট করে।
ব্যবহারUI ডেটা শুধুমাত্র প্রদর্শনের জন্য ব্যবহৃত হয়।UI ডেটা এবং ব্যবহারকারীর ইনপুট উভয়ই ViewModel-এ প্রেরিত হয়।
কোডিং কমপ্লেক্সিটিসাধারণ এবং কমপ্লেক্স নয়।কিছুটা জটিল, কারণ ViewModel-এ প্রপার্টি পরিবর্তন এবং View-এর সাথে সিঙ্ক্রোনাইজেশন প্রয়োজন।
উদাহরণএকটি লেবেল বা টেক্সটবক্সের মান দেখানো।ফর্মের ইনপুট গ্রহণ এবং তা ViewModel-এ আপডেট করা।

উপসংহার

  • One-Way Data Binding সাধারণত তথ্য প্রদর্শনের জন্য ব্যবহৃত হয়, যেখানে ViewModel এর ডেটা View-এ উপস্থাপন করা হয় এবং View থেকে কোনো ইনপুট প্রয়োজন নেই।
  • Two-Way Data Binding ব্যবহৃত হয় যখন View-এ থাকা তথ্যের পরিবর্তন সরাসরি ViewModel-এ প্রেরিত হওয়া প্রয়োজন, যেমন ব্যবহারকারীর ইনপুট বা ফর্ম ডেটা। এটি ইউজার ইন্টারঅ্যাকশনের জন্য কার্যকরী।

উপযুক্ত টাইপের Data Binding নির্বাচন করা, আপনার অ্যাপ্লিকেশনের প্রয়োজন এবং কার্যকারিতার উপর নির্ভর করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion